package com.baosight.risk.api.system;


import com.baosight.risk.base.service.BaseService;
import com.baosight.risk.service.system.entity.SysMenu;
import com.baosight.risk.service.xtzy.entity.XtzyUser;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author duanyongqiang
 * @date 2019.3.22
 */
public interface ISysMenuService extends BaseService<SysMenu> {


    /**
     * 根据用户ID查询菜单
     *
     * @param user 用户信息
     * @return 菜单列表
     */
    List<Map<String, Object>> selectMenusByUser(XtzyUser user);

    /**
     * 根据用户ID查询菜单
     *
     * @param user 用户信息
     * @return 菜单列表
     */
    List<Map<String, Object>> selectMenusByCompCode(XtzyUser user);


    /**
     * 查询系统菜单列表
     *
     * @param menu 菜单信息
     * @return 菜单列表
     */
    List<SysMenu> selectMenuList(SysMenu menu);


    /**
     * 根据用户ID查询权限
     *
     * @param userId 用户ID
     * @return 权限列表
     */
    Set<String> selectPermsByUserId(String userId);

    /**
     * 删除菜单管理信息
     *
     * @param menuId 菜单ID
     * @return 结果
     */
    int deleteMenuById(String menuId);

    /**
     * 根据菜单ID查询信息
     *
     * @param menuId 菜单ID
     * @return 菜单信息
     */
    SysMenu selectMenuById(String menuId);

    /**
     * 查询菜单数量
     *
     * @param parentId 菜单父ID
     * @return 结果
     */
    int selectCountMenuByParentId(String parentId);

    /**
     * 查询菜单使用数量
     *
     * @param menuId 菜单ID
     * @return 结果
     */
    int selectCountRoleMenuByMenuId(String menuId);

}